#command line:mingw32-make -f Makefile statics_count
#%.o :%.c pattern.h
#	$(if $(filter %.c,$%)	, 	$(info $@);gcc -c  $%  -o $@)
CFLAG= -fPIC -std=c99 
LINKFLAG= -ldl -lpthread
TOP := $(dir $(lastword $(MAKEFILE_LIST)))

#VARS_OLD = $(.VARIABLES)
#$(foreach v,$(VARS_OLD),$(info $(v)))

 #checking Windows System
 $(info $(OS))
 
ifeq (Windows,$(findstring Windows,$(OS)))
LINKFLAG=
CFLAG= -std=c99
$(shell cp D:\project\cpp\bonus\bin\Release\doubleball.db3  $(TOP)doubleball.db3 )
else
CFLAG= -fPIC -std=c99
endif
#gcc   -o test.exe   pattern.o testPattern.o db.o sqlite3.o -ldl -lpthread
#sqlite3.o:sqlite3.c
#	gcc $(CFLAG)     -shared -lpthread -c   -o sqlite3.o sqlite3.c
setup.o:setup.h setup.c
		gcc $(CFLAG)   -c  -o setup.o setup.c
libsqlite3.so:sqlite3.c
	gcc $(CFLAG)     -shared -lpthread -c   -o libsqlite3.so sqlite3.c
patterndesc.o:setup.o  patterndesc.h patterndesc.c
	gcc -c $(CFLAG) -finput-charset=UTF-8 -o patterndesc.o patterndesc.c 	
db.o:setup.o  db.h db.c
	gcc -c $(CFLAG) -o db.o db.c 

utiltool.o:setup.o db.o   db.h utiltool.c
	gcc -c $(CFLAG) -o utiltool.o utiltool.c 

pattern.o:  setup.o patterndesc.o  db.h utiltool.h pattern.h pattern.c
	gcc $(CFLAG) -c pattern.c -o pattern.o 
	
testPattern.o:  setup.o patterndesc.o db.o utiltool.o pattern.o testPattern.c
	gcc $(CFLAG)  -finput-charset=UTF-8 -c testPattern.c -o testPattern.o 
	
all : setup.o patterndesc.o libsqlite3.so db.o utiltool.o pattern.o testPattern.o
		gcc   -o test.exe   setup.o patterndesc.o db.o utiltool.o pattern.o testPattern.o libsqlite3.so $(LINKFLAG)
predication.o:predication.c
	gcc $(CFLAG) -c predication.c -o predication.o 
predication:predication.o setup.o   db.o utiltool.o  pattern.o patterndesc.o
		gcc -o predication.exe predication.o setup.o   patterndesc.o db.o utiltool.o pattern.o libsqlite3.so $(LINKFLAG)

statics_count.o:statics_count.c
	gcc $(CFLAG) -c statics_count.c -o statics_count.o 

statics_count:statics_count.o predication.o setup.o   db.o utiltool.o  pattern.o patterndesc.o
		gcc -Wimplicit-function-declaration -o statics_count.exe statics_count.o setup.o   patterndesc.o db.o utiltool.o pattern.o libsqlite3.so $(LINKFLAG)

		
clean:
	 $(RM) *.o
.DEFAULT: all
